part of '../controller.dart';

class _SuccessfulResponseDto extends Equatable {
  const _SuccessfulResponseDto._internal({
    required this.purchaseItemDtos,
  });

  final BuiltList<ApiWebPurchaseItemDto> purchaseItemDtos;

  @override
  List<Object?> get props {
    return [
      purchaseItemDtos,
    ];
  }

  factory _SuccessfulResponseDto({
    required BuiltList<WebPurchaseItem> purchaseItems,
  }) {
    final purchaseItemDtos = purchaseItems.map((purchaseItem) {
      return ApiWebPurchaseItemDtoFactory().fromEntity(purchaseItem);
    }).toBuiltList();

    return _SuccessfulResponseDto._internal(
      purchaseItemDtos: purchaseItemDtos,
    );
  }

  Map<String, dynamic> toJson() {
    final purchaseItemJsons = purchaseItemDtos.map((purchaseItemDto) {
      return purchaseItemDto.toJson();
    }).toList();

    return {
      'web_purchase_items': purchaseItemJsons,
    };
  }
}
